package com.tangcco.lockwell.domain;

import com.fasterxml.jackson.annotation.JsonFormat;

import java.io.Serializable;


/**
 * 群组对象实体类
 * @author 李金昭
 * 用于映射数据库中的groups表
 */
public class Groups implements Serializable {
    private static final long serialVersionUID = -5946321022309098992L;

    // 主键，自增且唯一，用于唯一标识每个群组，对应数据库表中的group_id字段
    private Integer groupId;
    // 群组的名称，以字符串形式呈现，用于直观标识群组，对应数据库表中的group_name字段
    private String groupName;
    // 对群组的详细描述信息，方便用户了解群组的功能、目的等情况，对应数据库表中的group_describe字段
    private String groupDescribe;
    // 关联到教师信息表（假设存在对应的表）的id字段，确定负责该群组的老师，对应数据库表中的teacher_id字段
    private Integer teacherId;
    // 该群组所能容纳的最大成员数量限制，对应数据库表中的user_max字段
    private Integer userMax;
    // 群组当前的状态，如正常运作、已经解散等情况，对应数据库表中的status字段
    private Integer status;
    // 群组创建的时间记录，便于追溯群组的起始时间，对应数据库表中的create_time字段
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private String createTime;
    // 群组最后一次修改的时间记录，可用于查看群组信息变动情况，对应数据库表中的modify_time字段
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private String modifyTime;
    // 学科相关标识，通过外键关联到字典表（假设存在对应的表）的相应字段，确定群组所属学科，对应数据库表中的dictionary_id字段
    private Integer dictionaryId;

    public Groups() {
    }

    public Groups(Integer groupId, Integer groupType, String groupName, String groupDescribe, Integer teacherId, Integer userMax, Integer status, String createTime, String modifyTime, Integer dictionaryId) {
        this.groupId = groupId;
        this.groupName = groupName;
        this.groupDescribe = groupDescribe;
        this.teacherId = teacherId;
        this.userMax = userMax;
        this.status = status;
        this.createTime = createTime;
        this.modifyTime = modifyTime;
        this.dictionaryId = dictionaryId;
    }


    public Integer getGroupId() {
        return groupId;
    }

    public void setGroupId(Integer groupId) {
        this.groupId = groupId;
    }


    public String getGroupName() {
        return groupName;
    }

    public void setGroupName(String groupName) {
        this.groupName = groupName;
    }

    public String getGroupDescribe() {
        return groupDescribe;
    }

    public void setGroupDescribe(String groupDescribe) {
        this.groupDescribe = groupDescribe;
    }

    public Integer getTeacherId() {
        return teacherId;
    }

    public void setTeacherId(Integer teacherId) {
        this.teacherId = teacherId;
    }

    public Integer getUserMax() {
        return userMax;
    }

    public void setUserMax(Integer userMax) {
        this.userMax = userMax;
    }

    public Integer getStatus() {
        return status;
    }

    public void setStatus(Integer status) {
        this.status = status;
    }

    public String getCreateTime() {
        return createTime;
    }

    public void setCreateTime(String createTime) {
        this.createTime = createTime;
    }

    public String getModifyTime() {
        return modifyTime;
    }

    public void setModifyTime(String modifyTime) {
        this.modifyTime = modifyTime;
    }

    public Integer getDictionaryId() {
        return dictionaryId;
    }

    public void setDictionaryId(Integer dictionaryId) {
        this.dictionaryId = dictionaryId;
    }

    @Override
    public String toString() {
        return "Groups{" +
                "groupId=" + groupId +
                ", groupName='" + groupName + '\'' +
                ", groupDescribe='" + groupDescribe + '\'' +
                ", teacherId=" + teacherId +
                ", userMax=" + userMax +
                ", status=" + status +
                ", createTime=" + createTime +
                ", modifyTime=" + modifyTime +
                ", dictionaryId=" + dictionaryId +
                '}';
    }
}
